2025-03-05 10:04:01,984 - INFO - Num classes: 3
2025-03-05 10:09:24,908 - INFO - Class weights: tensor([0.6006, 2.8061, 1.0217], device='cuda:0')
2025-03-05 10:09:24,918 - INFO - Model architecture:
Unet(
  (conv1): Sequential(
    (0): Conv2d(1080, 8, kernel_size=(3, 3), stride=(1, 1), padding=(5, 5))
    (1): BatchNorm2d(8, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(8, 8, kernel_size=(3, 3), stride=(1, 1), padding=(5, 5))
    (4): BatchNorm2d(8, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
  )
  (conv2): Sequential(
    (0): Conv2d(8, 16, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2))
    (1): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(16, 16, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2))
    (4): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
  )
  (conv3): Sequential(
    (0): Conv2d(16, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (1): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(32, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (4): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
  )
  (upconv3): Sequential(
    (0): Conv2d(32, 16, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (1): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(16, 16, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (4): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): ConvTranspose2d(16, 16, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), output_padding=(1, 1))
  )
  (upconv2): Sequential(
    (0): Conv2d(32, 8, kernel_size=(4, 4), stride=(1, 1), padding=(1, 1))
    (1): BatchNorm2d(8, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(8, 8, kernel_size=(4, 4), stride=(1, 1), padding=(1, 1))
    (4): BatchNorm2d(8, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): ConvTranspose2d(8, 8, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), output_padding=(1, 1))
  )
  (upconv1): Sequential(
    (0): Conv2d(16, 3, kernel_size=(7, 7), stride=(1, 1), padding=(1, 1))
    (1): BatchNorm2d(3, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(3, 3, kernel_size=(7, 7), stride=(1, 1), padding=(1, 1))
    (4): BatchNorm2d(3, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): ConvTranspose2d(3, 3, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), output_padding=(1, 1))
  )
)
2025-03-05 10:09:24,918 - INFO - Using cuda device
2025-03-05 10:17:58,865 - INFO - Epoch: 0/100. Training time: 340.018
2025-03-05 10:17:58,868 - INFO - Training Metrics...
2025-03-05 10:17:58,869 - INFO - {'loss': 1.100044518519359, 'f1': 34.562359474910224, 'acc': 42.42858767710906, 'precision': 38.826821315807, 'recall': 37.956336367812355, 'balanced acc': 37.956336367812355}
2025-03-05 10:17:58,869 - INFO - Validation Metrics... Inference time: 173.920
2025-03-05 10:17:58,869 - INFO - {'loss': 1.0539037050345006, 'f1': 33.66266032729899, 'acc': 43.024987939887495, 'precision': 36.72879692045981, 'recall': 37.40526116068678, 'balanced acc': 37.40526116068678}
2025-03-05 10:17:58,869 - INFO - ==================================================
2025-03-05 11:01:09,348 - INFO - Epoch: 5/100. Training time: 336.613
2025-03-05 11:01:09,351 - INFO - Training Metrics...
2025-03-05 11:01:09,351 - INFO - {'loss': 0.9858813767979859, 'f1': 44.67670070534399, 'acc': 50.24617803928897, 'precision': 47.727517328178045, 'recall': 50.27437772061699, 'balanced acc': 50.27437772061699}
2025-03-05 11:01:09,351 - INFO - Validation Metrics... Inference time: 176.477
2025-03-05 11:01:09,351 - INFO - {'loss': 0.9421744896815374, 'f1': 44.394292221646396, 'acc': 55.01322524201989, 'precision': 45.77569423918493, 'recall': 52.62666139338077, 'balanced acc': 52.62666139338077}
2025-03-05 11:01:09,351 - INFO - ==================================================
2025-03-05 11:43:48,608 - INFO - Epoch: 10/100. Training time: 335.027
2025-03-05 11:43:48,611 - INFO - Training Metrics...
2025-03-05 11:43:48,611 - INFO - {'loss': 0.9298460358267377, 'f1': 52.82060931471846, 'acc': 59.50294453967893, 'precision': 53.3950728811401, 'recall': 57.56677907618239, 'balanced acc': 57.56677907618239}
2025-03-05 11:43:48,611 - INFO - Validation Metrics... Inference time: 175.227
2025-03-05 11:43:48,611 - INFO - {'loss': 1.136889934539795, 'f1': 40.35504371333626, 'acc': 47.17438207254057, 'precision': 45.073177934536766, 'recall': 54.15797142102442, 'balanced acc': 54.15797142102442}
2025-03-05 11:43:48,611 - INFO - ==================================================
2025-03-05 12:26:18,699 - INFO - Epoch: 15/100. Training time: 332.466
2025-03-05 12:26:18,701 - INFO - Training Metrics...
2025-03-05 12:26:18,701 - INFO - {'loss': 0.9284336058197508, 'f1': 53.0445842582685, 'acc': 58.17364913720265, 'precision': 54.362389898904354, 'recall': 59.432785545831265, 'balanced acc': 59.432785545831265}
2025-03-05 12:26:18,701 - INFO - Validation Metrics... Inference time: 173.275
2025-03-05 12:26:18,701 - INFO - {'loss': 0.8438696188804431, 'f1': 52.50354820344742, 'acc': 64.85854407868918, 'precision': 54.09329414617764, 'recall': 61.32453419823663, 'balanced acc': 61.32453419823663}
2025-03-05 12:26:18,701 - INFO - ==================================================
2025-03-05 13:10:10,018 - INFO - Epoch: 20/100. Training time: 353.356
2025-03-05 13:10:10,020 - INFO - Training Metrics...
2025-03-05 13:10:10,020 - INFO - {'loss': 0.8337860289652637, 'f1': 60.37910584393701, 'acc': 67.72673564847913, 'precision': 60.87089378561659, 'recall': 65.97952932859535, 'balanced acc': 65.97952932859535}
2025-03-05 13:10:10,020 - INFO - Validation Metrics... Inference time: 181.924
2025-03-05 13:10:10,020 - INFO - {'loss': 0.9380344183017046, 'f1': 48.53884770295531, 'acc': 59.420966403388285, 'precision': 52.961761438182066, 'recall': 59.562037170913165, 'balanced acc': 59.562037170913165}
2025-03-05 13:10:10,020 - INFO - ==================================================
2025-03-11 15:59:59,483 - INFO - Num classes: 3
2025-03-11 16:05:35,110 - INFO - Class weights: tensor([0.6006, 2.8061, 1.0217], device='cuda:0')
2025-03-11 16:05:35,118 - INFO - Model architecture:
Unet(
  (conv1): Sequential(
    (0): Conv2d(1080, 8, kernel_size=(3, 3), stride=(1, 1), padding=(5, 5))
    (1): BatchNorm2d(8, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(8, 8, kernel_size=(3, 3), stride=(1, 1), padding=(5, 5))
    (4): BatchNorm2d(8, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
  )
  (conv2): Sequential(
    (0): Conv2d(8, 16, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2))
    (1): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(16, 16, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2))
    (4): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
  )
  (conv3): Sequential(
    (0): Conv2d(16, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (1): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(32, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (4): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
  )
  (upconv3): Sequential(
    (0): Conv2d(32, 16, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (1): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(16, 16, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (4): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): ConvTranspose2d(16, 16, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), output_padding=(1, 1))
  )
  (upconv2): Sequential(
    (0): Conv2d(32, 8, kernel_size=(4, 4), stride=(1, 1), padding=(1, 1))
    (1): BatchNorm2d(8, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(8, 8, kernel_size=(4, 4), stride=(1, 1), padding=(1, 1))
    (4): BatchNorm2d(8, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): ConvTranspose2d(8, 8, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), output_padding=(1, 1))
  )
  (upconv1): Sequential(
    (0): Conv2d(16, 3, kernel_size=(7, 7), stride=(1, 1), padding=(1, 1))
    (1): BatchNorm2d(3, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(3, 3, kernel_size=(7, 7), stride=(1, 1), padding=(1, 1))
    (4): BatchNorm2d(3, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): ConvTranspose2d(3, 3, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), output_padding=(1, 1))
  )
)
2025-03-11 16:05:35,118 - INFO - Using cuda device
2025-03-11 16:05:35,175 - INFO - Training parameters restored at epoch 19
2025-03-11 16:24:03,447 - INFO - Epoch: 20/100. Training time: 367.484
2025-03-11 16:24:03,450 - INFO - Training Metrics...
2025-03-11 16:24:03,451 - INFO - {'loss': 0.835956506288735, 'f1': 59.207864966410476, 'acc': 64.98958062524373, 'precision': 60.17508711059135, 'recall': 65.98172410182612, 'balanced acc': 65.98172410182612}
2025-03-11 16:24:03,451 - INFO - Validation Metrics... Inference time: 191.613
2025-03-11 16:24:03,451 - INFO - {'loss': 0.8800406089195838, 'f1': 48.411987517195115, 'acc': 58.812671703296694, 'precision': 48.36190277894319, 'recall': 55.39309727031008, 'balanced acc': 55.39309727031008}
2025-03-11 16:24:03,451 - INFO - ==================================================
2025-03-11 17:11:40,880 - INFO - Epoch: 25/100. Training time: 373.948
2025-03-11 17:11:40,883 - INFO - Training Metrics...
2025-03-11 17:11:40,884 - INFO - {'loss': 0.9308841805549184, 'f1': 55.05911681288643, 'acc': 63.87739361269985, 'precision': 56.148048746554416, 'recall': 59.14481584205843, 'balanced acc': 59.14481584205843}
2025-03-11 17:11:40,884 - INFO - Validation Metrics... Inference time: 195.023
2025-03-11 17:11:40,884 - INFO - {'loss': 0.7567181510803027, 'f1': 49.099390876614194, 'acc': 73.53955103676086, 'precision': 56.185715373887966, 'recall': 47.374010187802014, 'balanced acc': 47.374010187802014}
2025-03-11 17:11:40,884 - INFO - ==================================================
2025-03-11 17:59:21,185 - INFO - Epoch: 30/100. Training time: 378.827
2025-03-11 17:59:21,188 - INFO - Training Metrics...
2025-03-11 17:59:21,189 - INFO - {'loss': 0.8291407288259761, 'f1': 59.55037133033587, 'acc': 68.34140005524503, 'precision': 59.434615258036295, 'recall': 66.28636495994111, 'balanced acc': 66.28636495994111}
2025-03-11 17:59:21,189 - INFO - Validation Metrics... Inference time: 197.663
2025-03-11 17:59:21,189 - INFO - {'loss': 0.7162818282078474, 'f1': 58.01879901899487, 'acc': 71.55648016418105, 'precision': 56.61998211725915, 'recall': 63.648240975945015, 'balanced acc': 63.648240975945015}
2025-03-11 17:59:21,189 - INFO - ==================================================
2025-03-11 18:46:48,262 - INFO - Epoch: 35/100. Training time: 373.323
2025-03-11 18:46:48,265 - INFO - Training Metrics...
2025-03-11 18:46:48,265 - INFO - {'loss': 0.8336929716881673, 'f1': 58.81121019690853, 'acc': 65.9379620677889, 'precision': 59.06588165403793, 'recall': 66.23011611629703, 'balanced acc': 66.23011611629703}
2025-03-11 18:46:48,265 - INFO - Validation Metrics... Inference time: 195.075
2025-03-11 18:46:48,265 - INFO - {'loss': 0.9688110198730078, 'f1': 48.826102263984126, 'acc': 58.11305742248823, 'precision': 53.73744570760053, 'recall': 60.95054869498716, 'balanced acc': 60.95054869498716}
2025-03-11 18:46:48,265 - INFO - ==================================================
2025-03-11 19:34:24,222 - INFO - Epoch: 40/100. Training time: 376.448
2025-03-11 19:34:24,225 - INFO - Training Metrics...
2025-03-11 19:34:24,225 - INFO - {'loss': 0.809525290492234, 'f1': 61.743194574620794, 'acc': 68.32413598401143, 'precision': 61.30189596738214, 'recall': 67.87990950399518, 'balanced acc': 67.87990950399518}
2025-03-11 19:34:24,226 - INFO - Validation Metrics... Inference time: 192.502
2025-03-11 19:34:24,226 - INFO - {'loss': 0.6337502384797121, 'f1': 61.77592271527167, 'acc': 78.11204559948979, 'precision': 62.93991901637346, 'recall': 62.8352454259569, 'balanced acc': 62.8352454259569}
2025-03-11 19:34:24,226 - INFO - ==================================================
2025-03-11 20:21:39,686 - INFO - Epoch: 45/100. Training time: 372.599
2025-03-11 20:21:39,688 - INFO - Training Metrics...
2025-03-11 20:21:39,689 - INFO - {'loss': 0.7814957419778131, 'f1': 64.6618564651277, 'acc': 71.39436064035488, 'precision': 64.44269957494764, 'recall': 67.51737652830192, 'balanced acc': 67.51737652830192}
2025-03-11 20:21:39,689 - INFO - Validation Metrics... Inference time: 191.671
2025-03-11 20:21:39,689 - INFO - {'loss': 0.8751177176451072, 'f1': 48.81261020151426, 'acc': 59.13918902897698, 'precision': 51.10014427521915, 'recall': 54.83919949571761, 'balanced acc': 54.83919949571761}
2025-03-11 20:21:39,689 - INFO - ==================================================
2025-03-11 21:08:47,458 - INFO - Epoch: 50/100. Training time: 371.542
2025-03-11 21:08:47,460 - INFO - Training Metrics...
2025-03-11 21:08:47,461 - INFO - {'loss': 0.7291565108451115, 'f1': 67.37535696178398, 'acc': 74.73189912907837, 'precision': 67.52644622840475, 'recall': 71.62291522996162, 'balanced acc': 71.62291522996162}
2025-03-11 21:08:47,461 - INFO - Validation Metrics... Inference time: 192.759
2025-03-11 21:08:47,461 - INFO - {'loss': 0.603217098957453, 'f1': 65.21092638623969, 'acc': 77.64256994865252, 'precision': 63.32989345645713, 'recall': 69.31753572109068, 'balanced acc': 69.31753572109068}
2025-03-11 21:08:47,461 - INFO - ==================================================
2025-03-11 21:55:59,403 - INFO - Epoch: 55/100. Training time: 370.692
2025-03-11 21:55:59,405 - INFO - Training Metrics...
2025-03-11 21:55:59,406 - INFO - {'loss': 0.7629547787320082, 'f1': 63.98619186861344, 'acc': 70.64502378379697, 'precision': 63.55911049777119, 'recall': 69.62144860944763, 'balanced acc': 69.62144860944763}
2025-03-11 21:55:59,406 - INFO - Validation Metrics... Inference time: 192.688
2025-03-11 21:55:59,406 - INFO - {'loss': 0.6706495972780081, 'f1': 59.90043877812998, 'acc': 73.471227433281, 'precision': 58.530045126217566, 'recall': 64.58296312388441, 'balanced acc': 64.58296312388441}
2025-03-11 21:55:59,406 - INFO - ==================================================
2025-03-11 22:42:37,835 - INFO - Epoch: 60/100. Training time: 367.053
2025-03-11 22:42:37,837 - INFO - Training Metrics...
2025-03-11 22:42:37,838 - INFO - {'loss': 0.7448242283930444, 'f1': 64.98167455900543, 'acc': 71.97383680781229, 'precision': 63.923581339388456, 'recall': 70.9838920748234, 'balanced acc': 70.9838920748234}
2025-03-11 22:42:37,838 - INFO - Validation Metrics... Inference time: 193.871
2025-03-11 22:42:37,838 - INFO - {'loss': 0.7198867125388904, 'f1': 58.062147624364734, 'acc': 70.54688011021716, 'precision': 58.71520580100166, 'recall': 66.42631233535606, 'balanced acc': 66.42631233535606}
2025-03-11 22:42:37,838 - INFO - ==================================================
2025-03-11 23:29:41,733 - INFO - Epoch: 65/100. Training time: 373.071
2025-03-11 23:29:41,736 - INFO - Training Metrics...
2025-03-11 23:29:41,736 - INFO - {'loss': 0.7464415336110789, 'f1': 65.85286971316022, 'acc': 72.62921141784739, 'precision': 65.30364450131096, 'recall': 70.9140060339173, 'balanced acc': 70.9140060339173}
2025-03-11 23:29:41,736 - INFO - Validation Metrics... Inference time: 193.154
2025-03-11 23:29:41,736 - INFO - {'loss': 0.7607343594233195, 'f1': 57.45681681792944, 'acc': 68.88018278224752, 'precision': 59.84662755088521, 'recall': 66.59504644027018, 'balanced acc': 66.59504644027018}
2025-03-11 23:29:41,736 - INFO - ==================================================
2025-03-12 01:19:57,140 - INFO - Num classes: 3
2025-03-12 01:31:16,537 - INFO - Num classes: 3
2025-03-12 01:37:07,181 - INFO - Class weights: tensor([0.6006, 2.8061, 1.0217], device='cuda:0')
2025-03-12 01:37:07,192 - INFO - Model architecture:
Unet(
  (conv1): Sequential(
    (0): Conv2d(1080, 8, kernel_size=(3, 3), stride=(1, 1), padding=(5, 5))
    (1): BatchNorm2d(8, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(8, 8, kernel_size=(3, 3), stride=(1, 1), padding=(5, 5))
    (4): BatchNorm2d(8, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
  )
  (conv2): Sequential(
    (0): Conv2d(8, 16, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2))
    (1): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(16, 16, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2))
    (4): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
  )
  (conv3): Sequential(
    (0): Conv2d(16, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (1): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(32, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (4): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
  )
  (upconv3): Sequential(
    (0): Conv2d(32, 16, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (1): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(16, 16, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (4): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): ConvTranspose2d(16, 16, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), output_padding=(1, 1))
  )
  (upconv2): Sequential(
    (0): Conv2d(32, 8, kernel_size=(4, 4), stride=(1, 1), padding=(1, 1))
    (1): BatchNorm2d(8, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(8, 8, kernel_size=(4, 4), stride=(1, 1), padding=(1, 1))
    (4): BatchNorm2d(8, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): ConvTranspose2d(8, 8, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), output_padding=(1, 1))
  )
  (upconv1): Sequential(
    (0): Conv2d(16, 3, kernel_size=(7, 7), stride=(1, 1), padding=(1, 1))
    (1): BatchNorm2d(3, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(3, 3, kernel_size=(7, 7), stride=(1, 1), padding=(1, 1))
    (4): BatchNorm2d(3, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): ConvTranspose2d(3, 3, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), output_padding=(1, 1))
  )
)
2025-03-12 01:37:07,192 - INFO - Using cuda device
2025-03-12 01:37:07,237 - INFO - Training parameters restored at epoch 63
2025-03-12 02:06:00,535 - INFO - Epoch: 65/100. Training time: 377.881
2025-03-12 02:06:00,537 - INFO - Training Metrics...
2025-03-12 02:06:00,537 - INFO - {'loss': 0.7083141496227046, 'f1': 66.30988981809706, 'acc': 72.80228373196412, 'precision': 66.12956265778891, 'recall': 72.38922073136632, 'balanced acc': 72.38922073136632}
2025-03-12 02:06:00,537 - INFO - Validation Metrics... Inference time: 198.340
2025-03-12 02:06:00,538 - INFO - {'loss': 0.6078914740146735, 'f1': 62.385436078075216, 'acc': 76.31971358254842, 'precision': 62.087139763297216, 'recall': 66.60755007544337, 'balanced acc': 66.60755007544337}
2025-03-12 02:06:00,538 - INFO - ==================================================
2025-03-12 02:53:47,199 - INFO - Epoch: 70/100. Training time: 370.083
2025-03-12 02:53:47,205 - INFO - Training Metrics...
2025-03-12 02:53:47,205 - INFO - {'loss': 0.6996926942448707, 'f1': 67.19587910719699, 'acc': 75.00939368581828, 'precision': 67.56035207614485, 'recall': 73.2880902781442, 'balanced acc': 73.2880902781442}
2025-03-12 02:53:47,205 - INFO - Validation Metrics... Inference time: 197.162
2025-03-12 02:53:47,205 - INFO - {'loss': 0.5883424052825341, 'f1': 58.75852105992784, 'acc': 76.89236451792254, 'precision': 61.82909967645832, 'recall': 58.07837707592609, 'balanced acc': 58.07837707592609}
2025-03-12 02:53:47,205 - INFO - ==================================================
2025-03-12 03:41:10,752 - INFO - Epoch: 75/100. Training time: 371.448
2025-03-12 03:41:10,758 - INFO - Training Metrics...
2025-03-12 03:41:10,758 - INFO - {'loss': 0.6832217183082726, 'f1': 68.46949099256118, 'acc': 76.60637105160536, 'precision': 68.48331804614293, 'recall': 72.71804630402087, 'balanced acc': 72.71804630402087}
2025-03-12 03:41:10,758 - INFO - Validation Metrics... Inference time: 195.770
2025-03-12 03:41:10,758 - INFO - {'loss': 0.5463163501177078, 'f1': 64.73443408607189, 'acc': 79.05919879971218, 'precision': 64.27104720685725, 'recall': 66.47730886007854, 'balanced acc': 66.47730886007854}
2025-03-12 03:41:10,758 - INFO - ==================================================
2025-03-12 04:28:28,619 - INFO - Epoch: 80/100. Training time: 375.516
2025-03-12 04:28:28,624 - INFO - Training Metrics...
2025-03-12 04:28:28,625 - INFO - {'loss': 0.6771408987652724, 'f1': 67.07664038105818, 'acc': 74.22788980241778, 'precision': 66.6175271925867, 'recall': 73.34494787585135, 'balanced acc': 73.34494787585135}
2025-03-12 04:28:28,625 - INFO - Validation Metrics... Inference time: 197.367
2025-03-12 04:28:28,625 - INFO - {'loss': 0.6146844931137867, 'f1': 64.13368363095518, 'acc': 76.67397938742805, 'precision': 62.344709598263016, 'recall': 69.6340716652492, 'balanced acc': 69.6340716652492}
2025-03-12 04:28:28,625 - INFO - ==================================================
2025-03-12 05:16:03,484 - INFO - Epoch: 85/100. Training time: 369.791
2025-03-12 05:16:03,488 - INFO - Training Metrics...
2025-03-12 05:16:03,488 - INFO - {'loss': 0.7252407715578747, 'f1': 65.16037820681795, 'acc': 70.31230958744963, 'precision': 64.68017730617598, 'recall': 72.50062617400083, 'balanced acc': 72.50062617400083}
2025-03-12 05:16:03,488 - INFO - Validation Metrics... Inference time: 197.519
2025-03-12 05:16:03,488 - INFO - {'loss': 0.5700153402793102, 'f1': 65.80885227232682, 'acc': 79.49977617248823, 'precision': 66.50827129585545, 'recall': 70.71183003807397, 'balanced acc': 70.71183003807397}
2025-03-12 05:16:03,488 - INFO - ==================================================
2025-03-12 06:03:52,256 - INFO - Epoch: 90/100. Training time: 383.361
2025-03-12 06:03:52,259 - INFO - Training Metrics...
2025-03-12 06:03:52,259 - INFO - {'loss': 0.6818306499226078, 'f1': 67.88939377374795, 'acc': 74.44014901940076, 'precision': 67.81427917446463, 'recall': 74.76126208786125, 'balanced acc': 74.76126208786125}
2025-03-12 06:03:52,259 - INFO - Validation Metrics... Inference time: 196.850
2025-03-12 06:03:52,260 - INFO - {'loss': 0.5505141845116248, 'f1': 65.24424177696085, 'acc': 78.28684057757718, 'precision': 63.90890978674136, 'recall': 68.54900332688105, 'balanced acc': 68.54900332688105}
2025-03-12 06:03:52,260 - INFO - ==================================================
2025-03-12 06:51:21,325 - INFO - Epoch: 95/100. Training time: 370.860
2025-03-12 06:51:21,328 - INFO - Training Metrics...
2025-03-12 06:51:21,328 - INFO - {'loss': 0.6649649781026657, 'f1': 69.48811052937607, 'acc': 76.436573833355, 'precision': 68.7139246506168, 'recall': 74.35308994843555, 'balanced acc': 74.35308994843555}
2025-03-12 06:51:21,328 - INFO - Validation Metrics... Inference time: 198.113
2025-03-12 06:51:21,328 - INFO - {'loss': 0.5243517450797253, 'f1': 68.02371748356613, 'acc': 81.23773547880691, 'precision': 68.71878042429303, 'recall': 70.74710403399914, 'balanced acc': 70.74710403399914}
2025-03-12 06:51:21,328 - INFO - ==================================================
2025-03-12 07:32:38,273 - INFO - Final test metrics:
{'f1': 68.05946881645504, 'acc': 81.23773547880691, 'precision': 67.99118610708874, 'recall': 70.89441649157503, 'balanced acc': 70.89441649157503}
2025-03-20 06:59:45,704 - INFO - Num classes: 3
2025-03-20 06:59:45,840 - INFO - Model architecture:
Unet(
  (conv1): Sequential(
    (0): Conv2d(1080, 8, kernel_size=(3, 3), stride=(1, 1), padding=(5, 5))
    (1): BatchNorm2d(8, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(8, 8, kernel_size=(3, 3), stride=(1, 1), padding=(5, 5))
    (4): BatchNorm2d(8, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
  )
  (conv2): Sequential(
    (0): Conv2d(8, 16, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2))
    (1): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(16, 16, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2))
    (4): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
  )
  (conv3): Sequential(
    (0): Conv2d(16, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (1): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(32, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (4): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
  )
  (upconv3): Sequential(
    (0): Conv2d(32, 16, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (1): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(16, 16, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (4): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): ConvTranspose2d(16, 16, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), output_padding=(1, 1))
  )
  (upconv2): Sequential(
    (0): Conv2d(32, 8, kernel_size=(4, 4), stride=(1, 1), padding=(1, 1))
    (1): BatchNorm2d(8, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(8, 8, kernel_size=(4, 4), stride=(1, 1), padding=(1, 1))
    (4): BatchNorm2d(8, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): ConvTranspose2d(8, 8, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), output_padding=(1, 1))
  )
  (upconv1): Sequential(
    (0): Conv2d(16, 3, kernel_size=(7, 7), stride=(1, 1), padding=(1, 1))
    (1): BatchNorm2d(3, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(3, 3, kernel_size=(7, 7), stride=(1, 1), padding=(1, 1))
    (4): BatchNorm2d(3, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): ConvTranspose2d(3, 3, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), output_padding=(1, 1))
  )
)
2025-03-20 06:59:45,840 - INFO - Using cuda device
2025-03-20 06:59:45,888 - INFO - Training parameters restored at epoch 96
2025-03-20 06:59:45,913 - INFO - Initializing final Evaluations:

2025-03-20 07:02:45,607 - INFO - Final validation metrics:
{'f1': 68.05946881645504, 'acc': 81.23773547880691, 'precision': 67.99118610708874, 'recall': 70.89441649157503, 'balanced acc': 70.89441649157503}
2025-03-20 07:04:46,949 - INFO - Final test pixel-wise classification metrics:
{'f1': 75.37623584427965, 'acc': 79.11368145743147, 'precision': 75.31251702735877, 'recall': 77.1067714786881, 'balanced acc': 77.1067714786881}
2025-04-05 02:36:35,200 - INFO - Num classes: 3
2025-04-05 02:36:35,204 - INFO - Class weights: None
2025-04-05 02:36:35,322 - INFO - Model architecture:
Unet(
  (conv1): Sequential(
    (0): Conv2d(1080, 8, kernel_size=(3, 3), stride=(1, 1), padding=(5, 5))
    (1): BatchNorm2d(8, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(8, 8, kernel_size=(3, 3), stride=(1, 1), padding=(5, 5))
    (4): BatchNorm2d(8, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
  )
  (conv2): Sequential(
    (0): Conv2d(8, 16, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2))
    (1): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(16, 16, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2))
    (4): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
  )
  (conv3): Sequential(
    (0): Conv2d(16, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (1): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(32, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (4): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
  )
  (upconv3): Sequential(
    (0): Conv2d(32, 16, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (1): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(16, 16, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (4): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): ConvTranspose2d(16, 16, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), output_padding=(1, 1))
  )
  (upconv2): Sequential(
    (0): Conv2d(32, 8, kernel_size=(4, 4), stride=(1, 1), padding=(1, 1))
    (1): BatchNorm2d(8, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(8, 8, kernel_size=(4, 4), stride=(1, 1), padding=(1, 1))
    (4): BatchNorm2d(8, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): ConvTranspose2d(8, 8, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), output_padding=(1, 1))
  )
  (upconv1): Sequential(
    (0): Conv2d(16, 3, kernel_size=(7, 7), stride=(1, 1), padding=(1, 1))
    (1): BatchNorm2d(3, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(3, 3, kernel_size=(7, 7), stride=(1, 1), padding=(1, 1))
    (4): BatchNorm2d(3, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): ConvTranspose2d(3, 3, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), output_padding=(1, 1))
  )
)
2025-04-05 02:36:35,322 - INFO - Using cuda device
2025-04-05 02:36:35,348 - INFO - Initializing final Evaluations:

